home *** CD-ROM | disk | FTP | other *** search
- DeHackEd v. 2.0
- By Greg Lewis (Tree)
- gregory.lewis@umich.edu
- The premiere Doom.exe hack editor!
-
-
- This is a general help file for DeHackEd version 2.0. For more specific
- product information, see the file DEHACKED.TXT. If the information
- contained here is not specific enough, or you want more technical details,
- get a copy of the the doom.exe hack specs written by Matt Fell. They are
- available for FTP at infant2.sphs.indiana.edu, in the directory
- /pub/doom/wad_edit/doomhack, and are called DEHACKER.ZIP. And, if you
- are more interested in simply finding fun stuff to experiment with,
- check out "Fun with DeHackEd" (dhefun??.txt) bundled with the program. It
- was written by Dan Lottero, and includes all sorts of wild things to do!
-
-
- This help file is arranged in the following nine sections:
-
- 1. Command Line Options
- 2. DeHackEd.ini Options
- 3. Patch File Info
- 4. Available Keys
- 5. Thing Editor
- a. Thing fields
- b. Bit fields
- 6. Frame Editor
- 7. Ammo Editor
- 8. Sound Editor
- 9. Sprite Editor
- 10. Text Editor
-
- So, without further ado, here it is!
-
-
- 1. *** Command Line Options
- \------======================
-
- First, an explanation of command line options. The full command line
- syntax for DeHackEd is:
-
- dehacked [doompath] [-load <patchname>] [-save <patchname>]
-
- [doompath] is optional, and specifies a different location for the
- doom files, doom.exe and doom.wad, other than the current directory.
-
- -load <patchname> will update the doom.exe file with the patch called
- <patchname> and return to the DOS prompt--great for batch files!. And,
- conversely, the -save <patchname> option will save the current doom.exe
- status to a patch file named <patchname> and return to the DOS prompt.
- These options are similar to 'l' and 's' in DeHackEd, although when used
- in DeHackEd the 'l' option requires a 'w' after it to actually write the
- changes to the doom.exe file. See section 4 for more info on 'l', 's',
- and 'w'.
-
- Example command line:
-
- dehacked c:\games\doom -load suprwep4.deh
-
- This will start DeHackEd, using the doom.exe file found in c:\games\doom,
- will update it with the info from the suprwep4.deh patch file, and return
- to the DOS prompt. And of course, just typing a plain 'dehacked' will take
- you straight into the DeHackEd main program.
-
-
- 2. *** DeHackEd.ini Options
- \------======================
-
- Included with DeHackEd 2.0 is a new DeHackEd.ini file which can specify
- several parameters for DeHackEd. They allow you to customize where you
- want your patch files located, what your doom files are named, and more.
- Note: you must keep a space on both sides of the equal signs for a
- parameter to be processed properly. A summary of the allowable command
- line options follows:
-
- # Start comment lines with a pound sign. Anything after the pound
- sign is ignored.
- doomexe = <exename>
- This is the name of your doom.exe file, and full path if necessary.
- You can change this easily to determine whether you are working
- with a Doom 1.2 exe or a Doom 1.666 exe. This doesn't need to be
- included if you are running DeHackEd from the directory that your
- doom.exe file resides in.
- doomwad = <wadname>
- This is the name of your doom.wad file, and full path if necessary.
- This must be a registered wad file, not a shareware file. This is
- needed for verification that you are really registered, and not
- just trying to fake it. Once again, if this is in the same
- directory that DeHackEd is run from you don't need this parameter.
- doompath = <path>
- This is the path from which you want Doom to be run. This is only
- used when using the 'r'un option from inside DeHackEd.
- doomargs = <Doom parameters>
- These are command-line parameters that are fed to Doom when it's
- run using the 'r'un option from within DeHackEd. Useful if you
- are using DeHackEd for a custom patch for a WAD you are writing;
- you can simply include a '-file <wadname>' in this line, and
- Doom will load your level every time DeHackEd runs it.
- patchdir = <path>
- This is the directory that DeHackEd will look in for patch files.
- A nifty way of keeping all of your thousands of .DEH files out
- of the Doom main directory.
-
- The following parameters are all totally optional, and need only be
- used if you are doing some "custom" doom.exe hacking.
- doomver = <0 | 1>
- This is the version of Doom you are hacking. 0 is Doom 1.2 and
- 1 is Doom 1.666. This *must* be included if any of the following
- options are set.
- doomsize = <size>
- The size of your Doom.exe file. I've had a few people complain
- that they have a non-standard doom.exe file size, and this may
- fix your problem simply by changing this. If you get erroneous
- results though, you may have to play with the following params...
- thingoff = <offset>
- soundoff = <offset>
- frameoff = <offset>
- spriteoff = <offset>
- ammooff = <offset>
- weaponoff = <offset>
- textoff = <offset>
- These are the offsets in the doom.exe file for their corresponding
- data chunks. Read Matt Fell's specs if you don't understand what
- these sections are, they are explained fairly clearly (among the
- rest of the information in the file). PLAY WITH THESE AT YOUR OWN
- RISK.
-
-
- 3. *** Patch File Info
- \------=================
-
- This is some more info on patch files, which may help explain any
- difficulties you are having with them.
-
- Patch files save ALL the info on Frames, Ammo, Things, Weapons, Sound,
- Sprites, and Text, NOT just changed data. Saving only changed data would
- involve complications with just what was 'changed' (don't ask, just trust
- me!). This way, if several people load a specific patch, you KNOW
- everyone will have the same doom.exe file.
-
- The patch files that DeHackEd 1.3 created saved only 4 pieces of info:
- the Frames, Things, Ammo and Weapons. If you are editing Doom 1.2,
- DeHackEd 2.0 will only save those pieces of information in order to
- create a patch file compatible with DeHackEd 1.3.
-
- It is a good idea to save back-up patch files before messing around
- with your doom.exe file. The standard naming convention for back-up
- patches is "normal??.deh", where the ?? are replaced with 12 or 16,
- depending on your doom version. Those files are then also used for
- merging patches, as a "clean" patch of your doom.exe file. For example,
- if you are merging in a patch for Doom 1.666, DeHackEd expects to find a
- clean patch file called "normal16.deh" in your patch directory.
-
- If anyone is interested in the actual make-up of the patch files (for
- compatibility with your own doom exe editor, or for any other purposes)
- please contact me and I'll let you know the format that they are stored
- in.
-
-
- 4. *** Available Keys
- \------================
-
- Available keys are as follows:
-
- ESC Exits to DOS. Or, if you are in an input box, or just about
- *anywhere* in the program for that matter, it will back you
- out to whatever you had previously been doing. This is certainly
- an improvement over 1.3, as many of you will attest. :-)
-
- Enter Edits the current field, if it is an editable field. To leave an
- editing box if you hit Enter by mistake, simply hit ESC.
-
- Space Views, plays, or displays the current field, if applicable. If
- you are on a "frame" field, such as any of the Thing frames, or
- any field in the Frame table, or the Frame fields in the Ammo
- editor, you can see the frame that you've got highlighted simply
- by hitting the spacebar. (Note: If you are on the "Next Frame"
- field in the Frame editor you WILL see the next frame, not the
- current frame.) If the frame you are viewing is the first in a
- series of frames, repeatedly pressing the spacebar will cycle
- through all of the frames. Escape will exit. The spacebar will
- also view the full text strings in the Text Editor. And it will
- also play the sounds when you are in a sound field (currently not
- inplemented yet).
-
- C The copy command. This will copy information from one entry to
- another. The syntax is fairly basic: enter the number of the
- entry to copy FROM, and the entry number to copy TO. A clipboard
- for Things is available as Thing #138 (Thing #104 for Doom 1.2),
- which is just a temporary storage Thing (and is not actually
- present in the Doom.exe file). Note that the Thing names will
- not change... the Thing name is not actually in the Doom.exe, and
- is just included for your own benefit. The Thing # is also only
- for the convenience of the hacker, and is not in the doom.exe
- file. A specific Thing # will always have the same Thing Name,
- and this cannot be changed.
-
- D Change numeric mode to Decimal. This displays all numbers as
- normal decimal numbers. 'H' will switch to hexidecimal displays,
- which may be helpful sometimes.
-
- G Goes to a specific Thing. If you know exactly which Thing or
- Frame you want to see, jump right to it without bothering to
- arrow or page down. The Things now have a goto window arranged
- alphabetically by name. That's so that you don't need to remember
- lots of Thing numbers all the time!
-
- H Displays all numbers in the hexidecimal number format. Useful
- for those true hackers who live in hex their whole lives. Use
- 'D' to return to the normal decimal world.
-
- J Jumps to the information in the current field, in it's respec-
- tive editor. For example, if you are in the Thing editor, and the
- 'Death Frame' is highlighted, and you press the 'j' key, you will
- jump to the Frame editor, with the corresponding Frame number high-
- lighted. A very handy tool for moving around the various editors.
- Generally it'll jump to a "logical" place, if there is one.
-
- L Loads a patch file. You must enter the patch filename, and it
- will replace the current information. Note that 'w' must still
- be used to make the changes permanent. You can also do this
- from the command line by typing
- dehacked -load <filename>
- One caveat: the load feature was just recently changed to
- allow automatic conversion of 1.2 patch files to 1.666 files.
- With the few patches I've tested i have not noticed any problems
- loading 1.2 patch files into 1.666. However, 1.666 to 1.2 will
- NOT work.
-
- M Merges a new patch file into Doom. The 'l'oad option overwrites
- all information with the information from the new patch file.
- The 'm'erge option compares the patch file that you specify with
- a "normal" patch file, and only changes data that is *different*
- between the two files. It will not always give the expected
- results when the new patch file changes something that's already
- changed in the current doom.exe, but it will usually work. Also,
- you will need to have a "normal" patch file for Doom to compare
- against. See the section on patch files for more information on
- those patch files. I have been having a few problems with this
- particular command, and I'm checking into it to see if I can
- pinpoint the problems. It should be fixed by next release.
-
- R Runs Doom. This option is slightly tempermental, for reasons
- unknown to me. If you have plenty of memory, try hitting it to see
- if it'll work. It allows you to quickly test-run Doom, to check out
- the changes you've made (remember to hit 'w' before running!).
- After Doom finishes, you will be returned to your current place in
- the editor to continue working. You can specify command-line
- parameters for Doom, and the directory to run Doom from in the
- DeHackEd.ini file.
-
- S Save a patch file. You must enter the patch filename, and it
- will save all editable material to the patch file. It saves either
- a 1.2 patch or 1.666 patch depending on what doom.exe you are
- editing at the time. You can also do this from the command line
- by typing
- dehacked -save <filename>
-
- U Undo all changes. This reloads the information straight from the
- doom.exe file, and will return you to your most recent 'w'rite
- of the doom.exe file.
-
- W Writes all changes to the doom.exe file. This step is necessary
- to get any results!
-
- F2 Thing Editor. This is the main Thing editor, the default screen in
- DeHackEd 2.0. See section 5 for more detailed Thing info.
-
- F3 Frame Table. Displays Frame information, in a list format.
- See section 6 for more detailed Frame info.
-
- F4 Ammo/Weapon Editor. This allows you to edit the ammo and weapon
- amounts and graphics.
-
- F5 Sound Table. A jolly good table of all the sounds. Editing of the
- sounds is included in DeHackEd 2.0.
-
- F6 Sprite Table. A handy list of all the sprites, in case someone
- needs it. Also has recently added editing capabilities.
-
- F7 Text Editor. This shows all the text strings in the Doom.exe file.
- You can also edit the strings, a capability new to DeHackEd.
-
- F8 Thing List. This is a Table version of the Thing editor. It shows
- only the most important Thing information, and is meant as a quick-
- reference guide.
-
-
- 5. *** Thing Editor
- \------==============
-
- a. Thing fields
-
- This is the first thing you see when you start up DeHackEd. It is also
- one of the main areas of the program. Edit Things by highlighting the
- desired field and hitting Enter.
-
- Thing Number: The number of the Thing. Basically it's just for
- reference, numbered in order according to how the Things are stored
- in the doom.exe file. Note: these are different between 1.2 and
- 1.666, because new Things have been added!
- Thing Name: A short descriptive name for the Thing. This info
- is NOT stored in the Doom.exe file, and thus you can't edit it, and
- it will always remain the same. So a Thing #55 (the rocket launcher
- in Doom 1.2) will always be described as a "Rocket Launcher", even if
- you change it to something entirely different, like a Cacodemon.
- Thing ID#: This is the Thing's 'identification number' which is
- used in level developement (WAD files). Wherever this number appears
- in a WAD file, this Thing will appear.
- Hit Points: How much damage it can sustain. For all non-living
- Things, it's generally 1000 (not necessary though).
- Speed: How fast it can go. Projectiles have their speed
- multiplied by 65536, but DeHackEd displays projectiles the same way
- it does normal speeds (so you don't need to wade though large numbers
- for projectile speeds). Whether a certain is a projectile or not is
- determined by bit #10, 'Projectile/player'. If that bit is set, the
- speed is displayed as a Projectile, otherwise it is a "normal" speed.
- Basically though, just ignore it and DeHackEd will take care of it
- for you. :-)
- Width: The radius of the Thing. A narrow Thing is harder
- to hit! To fit a Thing through a narrow passageway, you need to
- have the passage slightly wider than twice it's width. Thus a
- passage must be 33 to allow the Marine through, even though his
- actual radius is 16.
- Height: Same as width, but it's height. Duh. :-)
- Missile Damage: If it's a projectile, how much damage it does upon
- "death" (explosion). Note that Lost Souls have this set to 3.
- Reaction Time: For monsters, their reaction time. Lower=quicker to
- attack, higher=slower to attack.
- Pain Chance: Chance out of 256 that a monster's action/attack will
- be interrupted by an injury. The Lost Soul always will (256), and
- the Spider Boss very rarely will (40).
- Mass: Thing's mass. Set a trooper's to 1 and watch him fly!
- Note the Cyberdemon has a high mass, and your rockets don't budge
- him much.
- Bits: This is the actual value of all of the bits. Just
- change this one number if you want to set all of the bits at once
- to something. See also the Bit fields portion of the text, coming
- up in a few pages or so.
-
- SOUNDS
- Alert: Sound made when the monster first spots the player,
- or a projectile is launched. These all point to the sounds in the
- Sound table.
- Attack: Sound made during a close attack.
- Pain: Sound made when the Thing is injured.
- Death: Sound made when the Thing dies. For projectiles and
- barrels, the sound of it's explosion.
- Action: Sound made when the Thing is just milling around.
-
- FRAMES
- First Normal: What an inactive thing looks like, or a monster that's
- not yet active. All frame numbers refer to the Frame table. Only
- the first frame is listed, you will need to refer to that Frame
- entry in the Frame table to find out if it's actually a sequence of
- frames.
- First Moving: A movable Thing's "first steps."
- Injury: Frame played for an injured Thing.
- Close Attack: Attacks that are close (clawing imps).
- Far Attack: Attacks that are far away (imp winding up for a
- fireball attack).
- Death: Monster death or barrel/projectile explosion.
- Explode Death: Exploding death (slop!) for players, troopers,
- imps, and sargeants.
- Respawn: This is the frame that's shown when the Thing comes
- back to life due to the ArchVile. This field is only shown for
- Doom 1.666.
-
-
- b. Bit Editor
-
- 0.Gettable Thing: Something that can be picked up by the player,
- like an ammo clip.
- 1.Obstacle: Something that can't be walked through.
- 2.Shootable Thing: It will only take damage if this is set. Note
- that barrels also have this set.
- 3.Total Invisibility: The Thing just can't be seen, no-how, no-way. It
- won't even show up with iddt-iddt. The technical reason for this
- is that it isn't included in the list of objects in the Sector, and
- thus isn't even considered for drawing.
- 4.'Automatics': From Jason Gorski: "Okay well if you don't want
- your weapons to auto-lock onto something set the automatics to yes."
- Basically Things like PUFF, TFOG, BLUD, and projectiles.
- 5.Unknown ??? If you find out what any of the Unknowns do,
- please let me know so I can include it in future versions!
- 6.In Pain: Used internally by the doom.exe to determine if a
- monster is in pain or not.
- 7.Unknown ???
- 8.Hangs From Ceiling: For those gory legs & mangled bodies. Have it set,
- well, if the Thing hangs from the ceiling!
- 9.No Gravity: Used for floating monsters and Things that aren't
- on the ground.
- 10.Proj/players: Set for projectiles and players... ??
- 11.Can pick up items: This Thing (i.e. the player) can pick up Gettable
- Things.
- 12.No Clipping: Same effect as idspispopd, but also effective for
- monsters.
- 13.Unknown ???
- 14.Floating: For floating monsters, like the Cacodemon and the
- Lost Soul.
- 15.Semi-No Clipping: Kinda like idspispopd, kinda not. You can't walk
- through walls, or trigger any linedefs, but you can walk over any
- height cliffs.
- 16.Projectiles: Set for projectiles.
- 17.Disappearing Weapon: This is used for weapons such as the shotgun that
- the sargeants use, so that it disappears when picked up in a multi-
- player game. Normal weapons do not have this set, however, because
- they stick around in normal multi-player games when picked up.
- 18.Partial Invisibilty: The Spectre effect.
- 19.Blood (vs. puffs): Whether a thing bleeds (bit off) or puffs (bit on)
- when hit. The barrel is the only default Thing that has this set.
- 20.Sliding Helpless: ??? (Try setting this and bit 7??)
- 21.Unknown ???
- 22.Counts for Kill% This Thing counts as part of the Kill% at the end
- of the level.
- 23.Counts for Item% Just like Kill%, but for Things.
- 24.Unknown ???
- 25.Not in Deathmatch: Things not present in Deathmatch mode, such as keys
- and the normal "Player" starting spots (deathmatch spots are used
- instead).
- 26.Color 1 00-greens->greens 01-greens->browns
- 27.Color 2 10-greens->indigos 11-greens->dark reds
- 28.Unknown \
- 29.Unknown Perhaps these are unused???
- 30.Unknown /
- 31.Unknown /
-
- 6. *** Frame Editor
- \------==============
-
- This displays the majority of the Frame information. Each frame has six
- editable fields. The only two fields that are NOT shown on the screen
- are always 0 in all of the Frames. Go figure.
-
- Frame #: This is the number that is specified in the Thing
- Frame fields.
- Name: A lookup done on the Text info in the doom.exe file,
- specified by a reference to the Sprite #, the Sprite Table, and
- the Sprite subnumber.
- Sprite #: The sprite that is shown for this Frame.
- Sprite Sub #: The individual "picture" (for lack of a better
- word... I think the technical term is "lump") suffix for this Frame.
- In the Doom.wad, there is (for example) a Sprite called TROO, for the
- trooper. The sub # specifies which TROO picture to use... TROOA,
- TROOB, TROOC, etc.
- Bright Sprite: This check box is not actually included in the
- Doom.exe file. The Sprite subnumber is multiplied by 32768 if the
- Sprite is to always be displayed at it's full brightness. I've
- just changed that into a check box to make it easier to make a
- Sprite bright, or not-bright. Sprites that are always displayed
- at their full brightness are Lost Souls, plasma bullets, etc... they
- are always visible no matter what the lighting is.
- Next Frame #: Which Frame to play next. You can skip a few shotgun
- frames this way, to make the super-fast ("combat") shotgun.
- Duration: How long the frame stays on the screen. Make 'em
- all 1 to make the super fast shotgun *really* be super fast! Notice
- that the notoriously slow BFG has a value of 20 and 10 for a few of
- its Frames. (hint hint... =)
- Code pointer: An offset in the doom.exe file to where it should
- look for the "action" associated with this Frame. It appears after
- more digging that this value is really useless. The actual location
- in the code is specified by a relocation table elsewhere in the
- doom.exe, which is referred to instead of the code pointer.
-
-
- 7. *** Ammo Editor
- \------=============
-
- Weapon Name: The name of the weapon (not editable)
- Ammo Type: A pithy description. This will be 'N/A' when an
- 'unknown' ammo type is given for the Ammo Number. Ammo type 5 is
- listed as "Unlimited".
- Ammo Number: 0=bullets 3=rockets
- 1=shells 4= ??? (none)
- 2=cells 5=unlimited (fist/chainsaw)
- Max ammo cap: The starting capacity for the current type of ammo.
- It's listed on the right side of the slash on the status bar.
- Backpacks will double this limit automatically. This will be 'N/A'
- for unknown ammo types.
- Ammo per item: How much ammo you get when you pick up a power-up of the
- current ammo type. For example, normally the bullet power-up gives
- you 10 bullets. This value is multiplied by 5 for the 'large'
- power-ups, i.e. boxes of rockets, boxes of shells, etc. Different
- difficulty modes also change this. Also 'N/A' for unknown types.
- Bobbing1-3 frame: Frame numbers for the bobbing weapon. This is the
- number that Doom refers to in the Frame list for more information.
- Shooting frame: Frame played when the weapon shoots.
- Firing frame: Frame that actually shows the "flames" from the
- weapon.
-
-
- 8. *** Sound Editor
- \------==============
-
- Sound Number: This is the number that's referenced by the Things
- for each sound.
- Text Offset: The offset into the Text section where the sound
- name is found.
- Sound Name: Found by simply checking the Text section at the
- correct offset.
- 0 / 1: ??? Perhaps some complicated sound thingy.
- Value: ??? Another unknown sound value, perhaps something
- dealing with how the sound was sampled.
-
- Ammo per item: How much ammo you get when you pick up a power-up of the
- current ammo type. For example, normally the bullet power-up gives
-
-
- 9. *** Sprite Editor
- \------===============
-
- Sprite Number: The number in the Frame table that refences this
- Sprite.
- Text Offset: The offset into the Text section where the Sprite
- name is found.
- Sprite Name: Also found through a simple lookup in the Text
- section.
-
-
- 10. *** Text Editor
- \------=============
-
- Text Offset: The offset into the Text section of the current
- Text string.
- Text: This is the actual text that's located at the
- text offset.
-
- Some notes are in order on the Text viewing, editing, etc. First of
- all, if the Text is longer than about 60 characters (too long to fit on
- one line in the general Text screen) three ellipses are displayed at the
- end of the line. Non-printing characters, such as new-lines, tabs, and
- other screwy characters are shown by a tilde symbol in the text (~).
-
- If you want to view the actual text, just hit the Spacebar and a window
- will pop up with the actual text string in it. A newline is shown by a
- '\n' shown in black (dark grey), tabs by '\t' in black, and so on. The
- text is formatted in basically the same way that it would be on-screen.
-
- To edit the text, just hit Enter and the view window and an edit window
- will pop up. Enter your new text in the edit window, and hit Escape when
- you are done editing. If you are hitting Escape to cancel the current
- editing operation, answer 'n'o when asked if you want your changes saved,
- otherwise answer 'y'es and the text will change to your modification.
-
- Because each text string is variable length in the doom.exe file, you have
- a slight lee-way in how long the edited text needs to be. The minimum and
- maximum length for the string you are editing are shown on the top line
- of the editing window, along with the current number of character.
- Generally you will have a range of 4 characters that the new string must
- fit into. Typing beyond the maximum number of characters is not allowed,
- and stopping short of the minimum is also not allowed.
-
- The text editor is not exactly a full-fledged version of Wordperfect, so
- the only movement key you have is the back-space... no arrow keys, no
- macros, no spell checker, etc. :-)
-
-
- That's about it. Any more question? Feel free to write me at
- gregory.lewis@umich.edu for more information. Have fun!
-